﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using VietKinsNutrition.Bussiness;
using VietKinsNutrition.Data;
using DevExpress.XtraGrid.Views.Grid;
using DevExpress.XtraGrid;
using VietKinsNutrition.Common;
using System.Globalization;

namespace VietKinsNutrition.ThucPham
{
    public partial class frmNhapkho : DevExpress.XtraEditors.XtraForm
    {
        ClsTblDm_NhapthucphamBLL ClsTblDm_Nhapthucpham_bll = new ClsTblDm_NhapthucphamBLL();
        ClsEventsInControlBLL ClsEventsInControl_bll = new ClsEventsInControlBLL();
        ClsExport2ExcelBLL ClsExport2Excel_bll = new ClsExport2ExcelBLL();
        ClsTblDm_XuatkhoBLL ClsTblDm_Xuatkho_bll = new ClsTblDm_XuatkhoBLL();
        Bussiness.ClsTblDm_NamhocBLL ClsTblDm_Namhocbll = new Bussiness.ClsTblDm_NamhocBLL();
        
        bool nonLoadData = false;
        int iBtn = 0;

        public frmNhapkho(DateTime Value)
        {
            InitializeComponent();
            this.datNgaynhap.EditValue = Value;
            btnThem_Click(null, null);
        }

        public frmNhapkho(DateTime datetime, DataTable GrXuat)
        {
            InitializeComponent();
            this.datNgaynhap.EditValue = datetime;
            btnThem_Click(null, null);
            DataTable dt = new ClsTblDm_XuatkhoBLL().Table_NhapdanhsachnguyenlieudukienvaTonkho(datetime, GrXuat);

            grvNhapthucpham.GridControl.DataSource = dt;
            nonLoadData = true;

            try
            {

                DataTable Tblnew = (DataTable)grvNhapthucpham.GridControl.DataSource;
                foreach (DataColumn Columm in Tblnew.Columns)
                {
                    if (Columm.ColumnName.ToUpper() == "NGAY")
                    {
                        Tblnew.Columns.Remove(Columm);
                        break;
                    }
                }
            }
            catch
            {

            }
        }

        public frmNhapkho()
        {
            InitializeComponent();
            btnThem_Click(null, null);
        }

        private void frmNhapkho_Load(object sender, EventArgs e)
        {
            this.datNgaynhap.EditValue = DateTime.Now.ToString("dd/MM/yyyy");
            this.datTu.EditValue = DateTime.Now.ToString("dd/MM/yyyy");
            this.datDen.EditValue = DateTime.Now.ToString("dd/MM/yyyy"); 
            try
            {
                ClsTblDm_Nhapthucpham_bll.Bind_CboNhomthucpham(cboNhomTP);
                this.ClsTblDm_Nhapthucpham_bll.Bind_Grid_ListThucpham(0, grdCtrThuvienTP);
                grdCtrHDnhap.DataSource = this.ClsTblDm_Nhapthucpham_bll.SelectAlSohoadonByTo_From(Convert.ToDateTime(datTu.EditValue), Convert.ToDateTime(datDen.EditValue));

                if (nonLoadData)
                    return;
                if (grdDSHD.DataRowCount > 0)
                {
                    if (iBtn != 1)
                    {
                        grdCtrNhapTP.DataSource = ClsTblDm_Nhapthucpham_bll.TblChitietnhapBySohoadonId(int.Parse(grdDSHD.GetFocusedRowCellValue("Id").ToString().Trim()));
                    }
                }
                if (this.ClsTblDm_Xuatkho_bll.TblHoadonnhapxuat_GetId_ByNgay(Convert.ToDateTime(datNgaynhap.EditValue)).Rows.Count == 0)
                {
                    // lên dự kiến
                    DataTable Tbl = ClsTblDm_Xuatkho_bll.Table_Xuatkhoavachengia(Convert.ToDateTime(datNgaynhap.EditValue));
                    foreach (DataRow Rw in Tbl.Rows)
                    {
                        Rw["Dongia"] = 0;
                        Rw["Thanhtien"] = 0;
                    }
                }

            }
            catch { }
        }

        //private float ReturnTongtienan(GridView Tbl)
        //{
        //    try
        //    {
        //        float ReturnTongtien = 0;
        //        if (Tbl.Name == "Dgrid_Chitietnhapthucpham")
        //        {
        //            for (int i = 0; i < Tbl.DataRowCount; i++ )
        //            {
        //                DataRow row = Tbl.GetDataRow(i);
        //                ReturnTongtien = ReturnTongtien + (row["Thanhtien"] != null && row["Thanhtien"].ToString().Trim() != "" ? float.Parse(row["Thanhtien"].ToString().Trim()) : 0);
        //            }
        //        }
        //        else
        //        {
        //            for (int i = 0; i < Tbl.DataRowCount; i++)
        //            {
        //                DataRow row = Tbl.GetDataRow(i);
        //                ReturnTongtien = ReturnTongtien + float.Parse(row["Thanhtien"].ToString().Trim());
        //            }
        //        }
        //        return ReturnTongtien;
        //    }
        //    catch { return 0; }
        //}
        //private float ReturnTongtienan(DataTable Tbl)
        //{
        //    try
        //    {
        //        float ReturnTongtien = 0;
        //        foreach (DataRow Rw in Tbl.Rows)
        //        {
        //            ReturnTongtien = ReturnTongtien + float.Parse(Rw["Soluong"].ToString().Trim()) * float.Parse(Rw["Dongia"].ToString().Trim());
        //        }

        //        return ReturnTongtien;
        //    }
        //    catch { return 0; }
        //}

        private void btnThem_Click(object sender, EventArgs e)
        {
            try
            {
                grdCtrNhapTP.DataSource = ClsTblDm_Nhapthucpham_bll.TblChitietnhapBySohoadonId(-1);
                this.btnDongy.Enabled = true;
                this.btnHuy.Enabled = true;
                gridColumn11.OptionsColumn.AllowEdit = true;
                gridColumn12.OptionsColumn.AllowEdit = true;
                this.btnThem.Enabled = false;
                this.btnSua.Enabled = false;
                this.btnXoa.Enabled = false;
                this.datNgaynhap.Enabled = false;
                iBtn = 1; 
                this.navBarControl1.ActiveGroup = this.navBarGroup1;
            }
            catch { }
        }

        private void datNgaynhap_EditValueChanged(object sender, EventArgs e)
        {
            try
            {
                if (this.btnThem.Enabled != false)
                {
                    grdCtrHDnhap.DataSource = this.ClsTblDm_Nhapthucpham_bll.SelectAlSohoadonBy(Convert.ToDateTime(datNgaynhap.EditValue));
                    if (grdDSHD.DataRowCount == 0)
                    {
                        DataTable Tbl_1 = new DataTable();
                        Tbl_1 = ClsTblDm_Nhapthucpham_bll.TblChitietnhapBySohoadonId(-1).Clone();
                        grdCtrNhapTP.DataSource = Tbl_1;
                    }
                }
            }
            catch { }    
        }

        private void cboNhomTP_SelectedValueChanged(object sender, EventArgs e)
        {
            try
            {
                if (cboNhomTP.EditValue == null) return;
                if (cboNhomTP.EditValue != null)
                {
                    this.ClsTblDm_Nhapthucpham_bll.Bind_Grid_ListThucpham(int.Parse(UserComboBoxItem.GetItemValue(cboNhomTP)), grdCtrThuvienTP);
                }
            }
            catch
            { }
        }

        private void txtTimkiem_TextChanged(object sender, EventArgs e)
        {
            if (cboNhomTP.EditValue != null)
            {
                this.ClsTblDm_Nhapthucpham_bll.Bind_GridThucphambyNhomandTen(int.Parse(UserComboBoxItem.GetItemValue(cboNhomTP)), txtTimkiem.Text, grdCtrThuvienTP);
            } 
            else
            {
                this.ClsTblDm_Nhapthucpham_bll.Bind_GridThucphambyNhomandTen(txtTimkiem.Text, grdCtrThuvienTP);
            }
        }

        private void grdvDSThucpham_DoubleClick(object sender, EventArgs e)
        {
            if (this.btnThem.Enabled == false && grdvDSThucpham.DataRowCount > 0)
            {
                grdCtrNhapTP.DataSource = TblChitietnguyenlieunhap("C", grdvDSThucpham.GetFocusedDataRow());
            }
            else
                return;
        }

        private DataTable TblChitietnguyenlieunhap(string Trangthai, DataRow Rw_select)
        {
            DataTable DsTonkho = ClsTblDm_Nhapthucpham_bll.Table_DanhsachnguyenlieuTonkho(Convert.ToDateTime(datNgaynhap.EditValue));
            DataTable DsChitietnguyenlieunhap = new DataTable();
            DsChitietnguyenlieunhap.Columns.Add("Tenthucan", ((DataTable)grdCtrNhapTP.DataSource).Columns["Tenthucan"].DataType);
            DsChitietnguyenlieunhap.Columns.Add("DonvitinhId", ((DataTable)grdCtrNhapTP.DataSource).Columns["DonvitinhId"].DataType);

            DsChitietnguyenlieunhap.Columns.Add("Thucpham_thucanId", ((DataTable)grdCtrNhapTP.DataSource).Columns["Thucpham_thucanId"].DataType);
            DsChitietnguyenlieunhap.Columns.Add("Tendonvitinh", ((DataTable)grdCtrNhapTP.DataSource).Columns["Tendonvitinh"].DataType);
            DsChitietnguyenlieunhap.Columns.Add("Soluongcon", ((DataTable)grdCtrNhapTP.DataSource).Columns["Soluongcon"].DataType);
            DsChitietnguyenlieunhap.Columns.Add("Soluong", ((DataTable)grdCtrNhapTP.DataSource).Columns["Soluong"].DataType);
            DsChitietnguyenlieunhap.Columns.Add("Dongia", ((DataTable)grdCtrNhapTP.DataSource).Columns["Dongia"].DataType);
            DsChitietnguyenlieunhap.Columns.Add("Thanhtien", ((DataTable)grdCtrNhapTP.DataSource).Columns["Thanhtien"].DataType);
            foreach (DataRow R in ((DataTable)grdCtrNhapTP.DataSource).Rows)
            {
                DsChitietnguyenlieunhap.Rows.Add(
                    R["Tenthucan"], R["DonvitinhId"], R["Thucpham_thucanId"],
                    R["Tendonvitinh"], R["Soluongcon"], R["Soluong"], R["Dongia"], R["Thanhtien"]);
            }
            if (Trangthai.ToString() == "C")
            {
                bool bDanhdau = true;
                foreach (DataRow Rw in DsChitietnguyenlieunhap.Rows)
                {
                    if (Rw["Thucpham_thucanId"].ToString().Trim() == Rw_select["IdThucpham_thucan"].ToString().Trim())
                    {
                        MessageBox.Show("Đã có tên thực phẩm");
                        bDanhdau = false;
                        break;
                    }
                }
                if (bDanhdau == true)
                {
                    // ad ở đây
                    string ten = Rw_select["Tenthucan"].ToString();
                    string tendonvi = Rw_select["Tendonvitinh"].ToString();
                    int donviId = Convert.ToInt32(Rw_select["DonvitinhId"]);
                    int TpId = Convert.ToInt32(Rw_select["IdThucpham_thucan"]);
                    DsChitietnguyenlieunhap.Rows.Add(ten, donviId, TpId, tendonvi, 0, 0, 0, 0);
                    foreach (DataRow NewRow in DsTonkho.Rows)
                    {
                        if (NewRow["Thucpham_thucanId"].ToString().Trim() == Rw_select["Idthucpham_thucan"].ToString().Trim())
                        {
                            DsChitietnguyenlieunhap.Rows[DsChitietnguyenlieunhap.Rows.Count - 1]["Soluongcon"] = NewRow["Soluong"].ToString();
                        }
                    }
                }
            }
            else
            {
                ((DataTable)grdCtrNhapTP.DataSource).Rows.Remove(Rw_select);
            }
            return DsChitietnguyenlieunhap;
        }

        private void btnTimkiem_Click(object sender, EventArgs e)
        {
            grdCtrHDnhap.DataSource = this.ClsTblDm_Nhapthucpham_bll.SelectAlSohoadonByTo_From(Convert.ToDateTime(datTu.EditValue), Convert.ToDateTime(datDen.EditValue));
            //this.navBarControl1.ActiveGroup = this.navBarGroup2;
        }

        string sTieude, sTenso, sTentruong, sTenphong;
        private void btnIn_Click(object sender, EventArgs e)
        {
            ClsTblDmTruonghocDAL ClsTblDmTruonghocdal = new ClsTblDmTruonghocDAL();
            DataTable dt = ClsTblDmTruonghocdal.TblTruong();

            if (dt.Rows.Count > 0)
            {
                DataRow dr = dt.Rows[0];
                sTenso = dr["TensoGD"].ToString();
                sTentruong = dr["Tentruong"].ToString();
                sTenphong = dr["TenphongGD"].ToString();
                sTieude = "Hóa đơn nhập hàng ".ToUpper();
            }

            if (grdDSHD.DataRowCount > 0 && grvNhapthucpham.RowCount > 0)
            {
                int SHD;
                NumberFormatInfo nfi = new CultureInfo("en-US", false).NumberFormat;
                nfi.NumberGroupSeparator = ".";
                nfi.NumberDecimalSeparator = ",";
                string tt = grvNhapthucpham.Columns["Thanhtien"].SummaryItem.SummaryValue.ToString();
                SHD = int.Parse(grdDSHD.GetFocusedRowCellValue("Id").ToString().Trim());
                //   ClsTblDm_Nhapthucpham_bll.ExportFileExel(this.Dgrid_Chitietnhapthucpham, this.saveFileDialog1, textTongtien, SHD);
                DataTable tg = (DataTable)(grdCtrNhapTP.DataSource);
                DataTable tblhoadon = tg.Copy();
                try
                {
                    tblhoadon.Columns.Remove("Thucpham_ThucanId");
                    tblhoadon.Columns.Remove("DonvitinhId");
                    tblhoadon.Columns.Remove("HoadonnhapxuatId");

                }
                catch { }
                System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("VietKinsNutrition.Resources." + "Hoa don nhap hang.xls");
                ClsDanhsachNV.Hoadon_nhap(stream, "Hoa don nhap hang.xls", sTenso, sTenphong, sTentruong, sTieude, tt, SHD, tblhoadon, datNgaynhap.EditValue.ToString());

            }
            else { XtraMessageBox.Show("Hãy thêm hóa đơn nhập mới (nếu chưa có), hoặc chọn hóa đơn để in"); }
        }

        DataTable TblTrunggian;
        private void btnDongy_Click(object sender, EventArgs e)
        {
            DataTable tb = TblTrunggian;
            if (grvNhapthucpham.DataRowCount <= 0)
            {
                XtraMessageBox.Show("Chưa tồn tại dữ liệu trong phiếu nhập");
                return;
            }
            foreach (DataRow Rw in ((DataTable)grdCtrNhapTP.DataSource).Rows)
            {
                if (float.Parse(Rw["Dongia"].ToString()) <= 0 || float.Parse(Rw["Soluong"].ToString()) <= 0)
                {
                    XtraMessageBox.Show("Không cho phép nhập đơn giá hoặc số lượng nhập bằng 0");
                    return;
                }
            }
            if (iBtn == 1)
            {
                // thêm ở đây
                // thêm hóa đơn nhập
                this.ClsTblDm_Nhapthucpham_bll.TblHoadonnhapxuat_Add(datNgaynhap.DateTime, float.Parse(grvNhapthucpham.Columns["Thanhtien"].SummaryItem.SummaryValue.ToString()));
                // lấy id hóa đơn vừa xuất.
                int HoadonnhapxuatId = -1;
                if (this.ClsTblDm_Nhapthucpham_bll.TblHoadonnhapxuat_GetId_ByNgay(datNgaynhap.DateTime).Rows.Count > 0)
                {
                    HoadonnhapxuatId = int.Parse(this.ClsTblDm_Nhapthucpham_bll.TblHoadonnhapxuat_GetId_ByNgay(datNgaynhap.DateTime).Rows[0]["Id"].ToString());
                }
                // thêm chi tiết hóa đơn nhập
                foreach (DataRow Row in ((DataTable)grdCtrNhapTP.DataSource).Rows)
                {
                    this.ClsTblDm_Xuatkho_bll.TblNhapxuathanghoa_Add(HoadonnhapxuatId, int.Parse(Row["DonvitinhId"].ToString()), int.Parse(Row["Thucpham_thucanId"].ToString()), (Row["Soluong"].ToString()), (Row["Dongia"].ToString()), (Row["Soluongcon"].ToString()));
                }
            }
            else
            {
                if (iBtn == 2)
                {
                    TblTrunggian = (DataTable)grdCtrNhapTP.DataSource;
                    // sửa ở đây
                    this.ClsTblDm_Nhapthucpham_bll.TblHoadonnhapxuat_Add(datNgaynhap.DateTime, float.Parse(grvNhapthucpham.Columns["Thanhtien"].SummaryItem.SummaryValue.ToString()));//ReturnTongtienan(TblTrunggian));
                    // lấy id hóa đơn vừa xuất.
                    int HoadonnhapxuatId = -1;
                    if (this.ClsTblDm_Nhapthucpham_bll.TblHoadonnhapxuat_GetId_ByNgay(datNgaynhap.DateTime).Rows.Count > 0)
                    {
                        HoadonnhapxuatId = int.Parse(this.ClsTblDm_Nhapthucpham_bll.TblHoadonnhapxuat_GetId_ByNgay(datNgaynhap.DateTime).Rows[0]["Id"].ToString());
                    }
                    // thêm chi tiết hóa đơn nhập
                    foreach (DataRow Row in TblTrunggian.Rows)
                    {
                        this.ClsTblDm_Xuatkho_bll.TblNhapxuathanghoa_Add(HoadonnhapxuatId, int.Parse(Row["DonvitinhId"].ToString()), int.Parse(Row["Thucpham_thucanId"].ToString()), (Row["Soluong"].ToString()), (Row["Dongia"].ToString()), (Row["Soluongcon"].ToString()));
                    }
                }
            }
            iBtn = 0;
            grdCtrHDnhap.DataSource = this.ClsTblDm_Nhapthucpham_bll.SelectAlSohoadonBy(datNgaynhap.DateTime);
            this.navBarControl1.ActiveGroup = this.navBarGroup2;
            this.btnDongy.Enabled = false;
            this.btnHuy.Enabled = false;
            //grdCtrThuvienTP.Enabled = false; 
            gridColumn11.OptionsColumn.AllowEdit = false;
            gridColumn12.OptionsColumn.AllowEdit = false;
            //grdCtrNhapTP.Enabled = false;
            this.btnThem.Enabled = true;
            this.btnSua.Enabled = true;
            this.btnXoa.Enabled = true;
            grdCtrHDnhap.Enabled = true;
            this.datNgaynhap.Enabled = true;
            if (grdDSHD.DataRowCount > 0)
            {
                if (this.btnThem.Enabled != false)
                {
                    grdCtrNhapTP.DataSource = ClsTblDm_Nhapthucpham_bll.TblChitietnhapBySohoadonId(int.Parse(grdDSHD.GetFocusedRowCellValue("Id").ToString().Trim()));
                }
            }
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            try
            {
                ((DataTable)grdCtrNhapTP.DataSource).Clear();
                this.datNgaynhap.Enabled = true;
                this.btnDongy.Enabled = false;
                this.btnHuy.Enabled = false;
                this.btnThem.Enabled = true;
                this.btnSua.Enabled = true;
                this.btnXoa.Enabled = true;
                grdCtrHDnhap.Enabled = true;
                //grdCtrThuvienTP.Enabled = false;
                gridColumn11.OptionsColumn.AllowEdit = false;
                gridColumn12.OptionsColumn.AllowEdit = false;
                //grdCtrNhapTP.Enabled = false;
                iBtn = 0;
            }
            catch
            {
            }
        }

        private void grdDSHD_Click(object sender, EventArgs e)
        {
            if (grdDSHD.DataRowCount > 0)
            {
                if (this.btnThem.Enabled != false)
                {
                    grdCtrNhapTP.DataSource = ClsTblDm_Nhapthucpham_bll.TblChitietnhapBySohoadonId(int.Parse(grdDSHD.GetFocusedRowCellValue("Id").ToString().Trim()));
                }
            }
        }

        private void grvNhapthucpham_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            try
            {
                object objSL = grvNhapthucpham.GetFocusedRowCellValue("Soluong");
                object objDG = grvNhapthucpham.GetFocusedRowCellValue("Dongia");
                object objId = grvNhapthucpham.GetFocusedRowCellValue("Thucpham_thucanId");
                if(objSL == null || objSL.ToString() == "")
                {
                    return;
                }
                else if (objDG == null || objDG.ToString() == "")
                {
                    return;
                }
                else
                {
                    double sl = Convert.ToDouble(objSL);
                    double dg = Convert.ToDouble(objDG);
                    foreach(DataRow row in ((DataTable)grdCtrNhapTP.DataSource).Rows)
                    {
                        if (objId == null)
                        {
                            return;
                        }
                        else if(row["Thucpham_thucanId"].ToString() == objId.ToString())
                        {
                            row["Thanhtien"] = (sl * dg);
                        }
                    }
                    //grvNhapthucpham.SetRowCellValue(grvNhapthucpham.GetRowHandle(0), grvNhapthucpham.Columns["Thanhtien"], (sl * dg));
                }
            }
            catch { }
        }

        private void btnSua_Click(object sender, EventArgs e)
        {
            if (grdDSHD.DataRowCount == 0)
            { return; }

            DataTable TblXuatkho = this.ClsTblDm_Xuatkho_bll.TblHoadonnhapxuat_GetId_ByLonhonNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            DataTable TblFindHoadon = this.ClsTblDm_Xuatkho_bll.TblHoadonnhapxuat_GetId_ByNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            DataTable TblNhapBynhonhonNgay = this.ClsTblDm_Xuatkho_bll.TblHoadonnhap_GetId_ByLonhonNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            DataTable TblNhapkho = this.ClsTblDm_Xuatkho_bll.TblHoadonnhap_GetId_ByNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            if (TblNhapBynhonhonNgay.Rows.Count > TblNhapkho.Rows.Count)
            {
                XtraMessageBox.Show("Hệ thống không cho phép sửa khi ngày sau đó đã có hóa đơn đi chợ", "Thông báo");
                return;
            }
            if (TblFindHoadon.Rows.Count == 0 && TblXuatkho.Rows.Count == 0)
            {
                //this cho 
                if (grdDSHD.DataRowCount == 1)
                {

                }
                else
                {
                    if (grdDSHD.FocusedRowHandle + 1 == grdDSHD.DataRowCount)
                    {

                    }
                    else
                    {
                        XtraMessageBox.Show("Hệ thống chỉ cho phép sửa hóa đơn nhập sau cùng của ngày", "Thông báo");
                        return;
                    }
                }
            }
            else
            {
                XtraMessageBox.Show("Hệ thống không cho phép sửa dữ liệu khi đã xuất hóa đơn sau hoặc trong ngày", "Thông báo");
                return;
            }
            TblTrunggian = new DataTable();
            TblTrunggian = ((DataTable)grdCtrNhapTP.DataSource);

            ClsTbl_Nhapthucphambll.TblNhapthucpham_Del(int.Parse(grdDSHD.GetFocusedRowCellValue("Id").ToString()));
            iBtn = 2;

            this.btnDongy.Enabled = true;
            this.btnHuy.Enabled = true;
            //grdCtrThuvienTP.Enabled = true;
            gridColumn11.OptionsColumn.AllowEdit = true;
            gridColumn12.OptionsColumn.AllowEdit = true;
            //grdCtrNhapTP.Enabled = true;
            this.btnThem.Enabled = false;
            this.btnSua.Enabled = false;
            this.btnXoa.Enabled = false;
            grdCtrHDnhap.Enabled = false;
            this.datNgaynhap.Enabled = false;
        }

        private void grvNhapthucpham_DoubleClick(object sender, EventArgs e)
        {
            if (this.btnThem.Enabled == false && grvNhapthucpham.DataRowCount > 0)
            {
                if (grvNhapthucpham.FocusedColumn.FieldName != "Soluong" && grvNhapthucpham.FocusedColumn.FieldName != "Dongia")
                {
                    TblChitietnguyenlieunhap("B", grvNhapthucpham.GetFocusedDataRow());
                }
            }
            else return;
        }

        ClsTblDm_NhapthucphamBLL ClsTbl_Nhapthucphambll = new ClsTblDm_NhapthucphamBLL();
        private void btnXoa_Click(object sender, EventArgs e)
        {
            if (grdDSHD.DataRowCount == 0)
            { return; }

            DataTable TblXuatkho = this.ClsTblDm_Xuatkho_bll.TblHoadonnhapxuat_GetId_ByLonhonNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            DataTable TblFindHoadon = this.ClsTblDm_Xuatkho_bll.TblHoadonnhapxuat_GetId_ByNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            DataTable TblNhapBynhonhonNgay = this.ClsTblDm_Xuatkho_bll.TblHoadonnhap_GetId_ByLonhonNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            DataTable TblNhapkho = this.ClsTblDm_Xuatkho_bll.TblHoadonnhap_GetId_ByNgay(Convert.ToDateTime(datNgaynhap.EditValue));
            if (TblNhapBynhonhonNgay.Rows.Count > TblNhapkho.Rows.Count)
            {
                XtraMessageBox.Show("Hệ thống không cho phép xóa khi ngày sau đó đã có hóa đơn đi chợ", "Thông báo");
                return;
            }
            if (TblFindHoadon.Rows.Count == 0 && TblXuatkho.Rows.Count == 0)
            {
                //this cho 
                if (grdDSHD.DataRowCount == 1)
                {
                    if (grdDSHD.GetFocusedRowCellValue("Id") == null)
                    {
                        XtraMessageBox.Show("Xin hãy chọn hóa đơn cần xóa!");
                        return;
                    }
                    else if (XtraMessageBox.Show("Dữ liệu bị xóa sẽ ảnh hưởng tới các hóa đơn còn lại, bạn chắc chắn?", "Chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        if (XtraMessageBox.Show("Bạn chắc chắn xóa hóa đơn đi chợ trong ngày?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                        {
                            return;
                        }
                        try
                        {
                            ClsTbl_Nhapthucphambll.TblNhapthucpham_Del(int.Parse(grdDSHD.GetFocusedRowCellValue("Id").ToString()));
                            XtraMessageBox.Show("Xóa dữ liệu thành công");
                        }
                        catch { }
                        this.btnLammoi_Click(sender, e);
                    }
                }
                else
                {
                    if (grdDSHD.FocusedRowHandle + 1 == grdDSHD.DataRowCount)
                    {
                        if (grdDSHD.GetFocusedRowCellValue("Id") == null)
                        {
                            XtraMessageBox.Show("Xin hãy chọn hóa đơn cần xóa!");
                            return;
                        }
                        else if (XtraMessageBox.Show("Dữ liệu bị xóa sẽ ảnh hưởng tới các hóa đơn còn lại, bạn chắc chắn?", "Chú ý", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                        {
                            if (XtraMessageBox.Show("Bạn chắc chắn xóa hóa đơn đi chợ trong ngày?", "Cảnh báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No)
                            {
                                return;
                            }
                            try
                            {
                                ClsTbl_Nhapthucphambll.TblNhapthucpham_Del(int.Parse(grdDSHD.GetFocusedRowCellValue("Id").ToString()));
                                XtraMessageBox.Show("Xóa dữ liệu thành công");
                            }
                            catch { }
                            this.btnLammoi_Click(sender, e);
                        }
                    }
                    else
                    {
                        XtraMessageBox.Show("Hệ thống chỉ cho phép xóa hóa đơn nhập sau cùng của ngày", "Thông báo");
                        return;
                    }
                }
            }
            else
            {
                XtraMessageBox.Show("Hệ thống không cho phép sửa dữ liệu khi đã xuất hóa đơn sau hoặc trong ngày", "Thông báo");
                return;
            }
        }

        private void btnLammoi_Click(object sender, EventArgs e)
        {
            this.datNgaynhap.EditValue = DateTime.Now.ToString("dd/MM/yyyy");
            this.datTu.EditValue = DateTime.Now.ToString("dd/MM/yyyy");
            this.datDen.EditValue = DateTime.Now.ToString("dd/MM/yyyy");
            this.ClsTblDm_Nhapthucpham_bll.Bind_Grid_ListThucpham(0, grdCtrThuvienTP);
            ((DataTable)grdCtrNhapTP.DataSource).Clear();
            this.btnDongy.Enabled = true;
            this.btnHuy.Enabled = true;
            //grdCtrThuvienTP.Enabled = false;
            gridColumn11.OptionsColumn.AllowEdit = true;
            gridColumn12.OptionsColumn.AllowEdit = true;
            //grdCtrNhapTP.Enabled = false;
            this.btnThem.Enabled = false;
            this.btnSua.Enabled = false;
            this.btnXoa.Enabled = false;
            //grdCtrHDnhap.Enabled = true;
            this.datNgaynhap.Enabled = false;
        }

        private void btnEditNhom_Click(object sender, EventArgs e)
        {
            FrmTblDm_Nhomthucpham_Thucan Frm = new FrmTblDm_Nhomthucpham_Thucan();
            Frm.ShowDialog();
            ClsTblDm_Nhapthucpham_bll.Bind_CboNhomthucpham(cboNhomTP);
        }

        private void datTu_EditValueChanged(object sender, EventArgs e)
        {
            if (datTu.EditValue == null || datDen.EditValue == null)
                return;
            btnTimkiem_Click(sender, e);
        }

        private void datDen_EditValueChanged(object sender, EventArgs e)
        {
            if (datTu.EditValue == null || datDen.EditValue == null)
                return;
            btnTimkiem_Click(sender, e);
        }
    }
}